<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>

        let math_score = 90;
        let chinese_score = 60;

        // && 与运算符（并且）
        // 全部成立才为 true，任意一个不成立为 false
        console.log(math_score >= 60 && chinese_score >= 60);

        let age = 20;
        // console.log(35 >= age >= 18); // 错误写法
        console.log(age >= 18 && age <= 35);


        // || 或运算符（或者）
        // 任意一个成立为 true，全部不成立为 false
        console.log(math_score >= 60 || chinese_score >= 60);


        // !非运算符（取反）
        let a = true;
        console.log(!a);
        console.log(!(math_score >= 60));


        // 短路运算符：&& 、||
        // &&：找到一个为 false 的数据
        // 1、先找到数字1，隐式转换为布尔值，进行判断，发现不是false
        // 2、找到true，进行判断，发现不是false
        // 3、找到0，隐式转换为布尔值，进行判断，发现是false
        // 4、直接输出找到的数字0，结束整个判断；
        console.log(1 && true && 0 && "hello");

        // ||：找到一个为 true 的数据
        console.log("" || null || false || 0 || undefined);

        // 布尔值转换规则（除了以下6个数据外，其他数据转换后都是 true）：
        // 0、""、null、undefined、NaN、false






    </script>
</body>

</html>